class Solution {
public:
    int minCost(vector<vector<int>>& costs) {
        int m=costs.size();
        int n=costs[0].size();
        vector<vector<int>> dp(m,vector<int>(n,0));
        dp[0][0]=costs[0][0];
        dp[0][1]=costs[0][1];
        dp[0][2]=costs[0][2];
        for(int i=1;i<m;++i)
        {
            dp[i][0]=min(dp[i-1][1],dp[i-1][2])+costs[i][0];
            dp[i][1]=min(dp[i-1][2],dp[i-1][0])+costs[i][1];
            dp[i][2]=min(dp[i-1][1],dp[i-1][0])+costs[i][2];
        }
        return min(min(dp[m-1][0],dp[m-1][1]),dp[m-1][2]);
    }
};
